package org.huawei260.TiKu.ODsuanfa;

/**
 * @Author: qingle
 * @Date: 2024/10/28-16:11
 * @Description: 2534 【模拟】2024E TLV编码
 *
 * TLV 编码是按 TagLengthValue 格式进行编码的。
 * 一段码流中的信元用 tag 标识，tag 在码流中唯一不重复，length 表示信元 value 的长度，value 表示信元的值，码流以某信元的 tag 开头，tag固定占一个字节，length固定占两个字节，字节序为小端序。
 * 现给定 TLV 格式编码的码流以及需要解码的信元 tag，请输出该信元的value。
 * 输入码流的 16 进制字符中，不包括小写字母；且要求输出的 16 进制字符串中也不要包含小写字母；码流字符串的最大长度不超过 50000 个字节。
 * 输入格式
 * 第一行为第一个字符串 ，表示待解码信元的 tag；输入第二行为一个字符串， 表示待解码的 16 进制码流；字节之间用 空格 分割。
 * 输出格式
 * 输出一个字符串，表示待解码信元以 16 进制表示的 value。
 * 输入样例    复制
 * 31
 * 32 01 00 AE 90 02 00 01 02 30 03 00 AB 32 31 31 02 00 32 33 33 01 00 CC
 * 输出样例    复制
 * 32 33
 * @version: 1.0
 */
public class E_2024E_2534__模拟_TLV编码 {

	public static void main(String[] args) {

		String tag = "31";

		String hex = "32 01 00 AE 90 02 00 01 02 30 03 00 AB 32 31 31 02 00 32 33 33 01 00 CC";

		String[] hexs = hex.split(" ");

		int index = 0;

		for (int i = 0; i < hexs.length; i++) {
			String hexStr = hexs[i];
			int tagInt = Integer.parseInt(hexStr, 16);
			if (tagInt == Integer.parseInt(tag, 16)) {
				index = i;
				break;
			}

		}

		StringBuilder sb = new StringBuilder();
		for (int i = index + 3; i < hexs.length; i++) {
			sb.append(hexs[i]);
		}
		System.out.println(sb.toString());
	}
}
